[INFO] fetching crate docchi_fs 0.8.0...
[INFO] checking docchi_fs-0.8.0 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate docchi_fs 0.8.0 into /workspace/builds/worker-4-tc1/source
[INFO] validating manifest of crates.io crate docchi_fs 0.8.0 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate docchi_fs 0.8.0
[INFO] finished tweaking crates.io crate docchi_fs 0.8.0
[INFO] tweaked toml for crates.io crate docchi_fs 0.8.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded docchi_diff v0.8.0
[INFO] [stderr]   Downloaded metrohash v1.0.6
[INFO] [stderr]   Downloaded with_capacity_safe v0.4.2
[INFO] [stderr]   Downloaded docchi_compaction v0.8.0
[INFO] [stderr]   Downloaded docchi_archiver2 v0.8.0
[INFO] [stderr]   Downloaded docchi_core v0.8.0
[INFO] [stderr]   Downloaded docchi_json5 v0.8.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 65e49ec2c9edd913e6daa0aec8e8dc9156b5adc188cfbd459d626f6245280d70
[INFO] running `Command { std: "docker" "start" "-a" "65e49ec2c9edd913e6daa0aec8e8dc9156b5adc188cfbd459d626f6245280d70", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65e49ec2c9edd913e6daa0aec8e8dc9156b5adc188cfbd459d626f6245280d70", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65e49ec2c9edd913e6daa0aec8e8dc9156b5adc188cfbd459d626f6245280d70", kill_on_drop: false }`
[INFO] [stdout] 65e49ec2c9edd913e6daa0aec8e8dc9156b5adc188cfbd459d626f6245280d70
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8aae2b358040f0033cf513d9a3773d812373c51b007280538b225f4ed81334fe
[INFO] running `Command { std: "docker" "start" "-a" "8aae2b358040f0033cf513d9a3773d812373c51b007280538b225f4ed81334fe", kill_on_drop: false }`
[INFO] [stderr]    Compiling ucd-trie v0.1.6
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking with_capacity_safe v0.4.2
[INFO] [stderr]     Checking metrohash v1.0.6
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]     Checking docchi_compaction v0.8.0
[INFO] [stderr]     Checking docchi_archiver2 v0.8.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.57
[INFO] [stderr]    Compiling thiserror v1.0.57
[INFO] [stderr]    Compiling pest v2.7.8
[INFO] [stderr]    Compiling pest_meta v2.7.8
[INFO] [stderr]    Compiling pest_generator v2.7.8
[INFO] [stderr]    Compiling pest_derive v2.7.8
[INFO] [stderr]     Checking docchi_json5 v0.8.0
[INFO] [stderr]     Checking docchi_core v0.8.0
[INFO] [stderr]     Checking docchi_diff v0.8.0
[INFO] [stderr]     Checking docchi_fs v0.8.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `tempfile`
[INFO] [stdout]  --> src/test_fs/save_test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tempfile::tempdir;
[INFO] [stdout]   |     ^^^^^^^^ use of undeclared crate or module `tempfile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_simple_diff_files.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_cumulative_limit_nth.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_cumulative_limit_count.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_max_phase0.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_max_phase0_with_cumu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_load_and_save.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/simple_diff/sd_data.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::{thread_rng, Rng};
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:39:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 39 |         let b = get_bool(p, "b")?;
[INFO] [stdout]    |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 59 |         let i = get_int(p, "int")?;
[INFO] [stdout]    |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:70:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 70 |         let b = get_bool(p, "b")?;
[INFO] [stdout]    |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 73 |         let i = get_int(p, "int")?;
[INFO] [stdout]    |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:76:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 76 |         let a = get_int(p, "added")?;
[INFO] [stdout]    |                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:31:38
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn mutate(&mut self, num : u8) -> FsResult<()>{
[INFO] [stdout]    |     --------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 31 |             if *self.bytes.get(index)? == 0{ break; }
[INFO] [stdout]    |                                      ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:36:52
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn mutate(&mut self, num : u8) -> FsResult<()>{
[INFO] [stdout]    |     --------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 36 |             *self.bytes.get_mut(index + n as usize)? = num;
[INFO] [stdout]    |                                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `FsError`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:69:78
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Err(anyhow!("error index {} is out of bound len {}", index, len))?
[INFO] [stdout]    |                                                                              ^ the trait `From<anyhow::Error>` is not implemented for `FsError`, which is required by `Result<(), FsError>: FromResidual<Result<Infallible, anyhow::Error>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              <FsError as From<CoreError>>
[INFO] [stdout]              <FsError as From<NouArcError>>
[INFO] [stdout]              <FsError as From<ComError>>
[INFO] [stdout]              <FsError as From<DiffError>>
[INFO] [stdout]              <FsError as From<std::io::Error>>
[INFO] [stdout]              <FsError as From<TryReserveError>>
[INFO] [stdout]              <FsError as From<std::string::String>>
[INFO] [stdout]              <FsError as From<SystemTimeError>>
[INFO] [stdout]              <FsError as From<&str>>
[INFO] [stdout]    = note: required for `Result<(), FsError>` to implement `FromResidual<Result<Infallible, anyhow::Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn decode_kvals(kvals : &[KVal]) -> FsResult<SdDiff>{
[INFO] [stdout]    |     --------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 45 |         let mut iter = kvals.iter();
[INFO] [stdout] 46 |         let len = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiff, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiff, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:46:40
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn decode_kvals(kvals : &[KVal]) -> FsResult<SdDiff>{
[INFO] [stdout]    |     --------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 45 |         let mut iter = kvals.iter();
[INFO] [stdout] 46 |         let len = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiff, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiff, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:76:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiffItem, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:76:42
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiffItem, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:77:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout] 77 |         let value = iter.next()?.as_i64()? as u8;
[INFO] [stdout]    |                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiffItem, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:77:42
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout] 77 |         let value = iter.next()?.as_i64()? as u8;
[INFO] [stdout]    |                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiffItem, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/show_dir_contents_history.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub(crate) fn show_dir_contents_history<P : AsRef<Path>>(path : P) -> FsResult<Vec<(String, usize)>>{
[INFO] [stdout]    | ---------------------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 13 |         let name = entry.path().file_name()?.to_string_lossy().to_string();
[INFO] [stdout]    |                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<(std::string::String, usize)>, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Vec<(std::string::String, usize)>, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:45:58
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn test_simple_diff_files() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 45 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_nth.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/history2/create_file_history2.rs:13:48
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub(crate) fn create_file_history2(dir_path : &Path, hint_max_phase : Option<usize>) -> FsResult<FileHistory2>{
[INFO] [stdout]    | -------------------------------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 13 |         let filename = entry.path().file_name()?.to_string_lossy().to_string();
[INFO] [stdout]    |                                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<FileHistory2, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<FileHistory2, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_count.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:42:57
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn test_max_phase0() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let newest_path = history.newest_file_path(&dir)?;
[INFO] [stdout]    |                                                         ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:42:58
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn test_max_phase0_with_cumu() -> FsResult<()> {
[INFO] [stdout]    | ---------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache,&op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:42:58
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn test_load_and_save() -> FsResult<()> {
[INFO] [stdout]    | --------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:63:58
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn test_load_and_save() -> FsResult<()> {
[INFO] [stdout]    | --------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 63 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ast_bool`, `ast_f64`, and `ast_string` are never used
[INFO] [stdout]   --> src/error.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) trait OptToErr{
[INFO] [stdout]    |                  -------- methods in this trait
[INFO] [stdout] 13 |     fn ast_i64(&self) -> Result<i64, &'static str>;
[INFO] [stdout] 14 |     fn ast_bool(&self) -> Result<bool, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 15 |     fn ast_f64(&self) -> Result<f64, &'static str>;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 16 |     fn ast_string(&self) -> Result<String, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply_diff` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_src.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffSrc<V : DiffValue> : Clone{
[INFO] [stdout]   |                  ------- method in this trait
[INFO] [stdout] 5 |     fn create_diff(&self, from: &Self) -> FsResult<V>;
[INFO] [stdout] 6 |     fn apply_diff(&mut self, diff : V) -> FsResult<()>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `read_value` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_value.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffValue : Sized{
[INFO] [stdout]   |                  --------- associated function in this trait
[INFO] [stdout] 5 |     fn read_value<R : Read>(read : &mut R) -> FsResult<Self>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 35 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `docchi_fs` (lib test) due to 36 previous errors
[INFO] running `Command { std: "docker" "inspect" "8aae2b358040f0033cf513d9a3773d812373c51b007280538b225f4ed81334fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8aae2b358040f0033cf513d9a3773d812373c51b007280538b225f4ed81334fe", kill_on_drop: false }`
[INFO] [stdout] 8aae2b358040f0033cf513d9a3773d812373c51b007280538b225f4ed81334fe
[INFO] checking docchi_fs-0.8.0 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate docchi_fs 0.8.0 into /workspace/builds/worker-4-tc2/source
[INFO] validating manifest of crates.io crate docchi_fs 0.8.0 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate docchi_fs 0.8.0
[INFO] finished tweaking crates.io crate docchi_fs 0.8.0
[INFO] tweaked toml for crates.io crate docchi_fs 0.8.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 60ebd24b030e4ba93a4b724acea0075bd6f29b56c57f66446c12941864815f86
[INFO] running `Command { std: "docker" "start" "-a" "60ebd24b030e4ba93a4b724acea0075bd6f29b56c57f66446c12941864815f86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "60ebd24b030e4ba93a4b724acea0075bd6f29b56c57f66446c12941864815f86", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "60ebd24b030e4ba93a4b724acea0075bd6f29b56c57f66446c12941864815f86", kill_on_drop: false }`
[INFO] [stdout] 60ebd24b030e4ba93a4b724acea0075bd6f29b56c57f66446c12941864815f86
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cffd55826f593abe7feab8fc58fd55cdb2fbd0cef206faf4448dd94b96987b21
[INFO] running `Command { std: "docker" "start" "-a" "cffd55826f593abe7feab8fc58fd55cdb2fbd0cef206faf4448dd94b96987b21", kill_on_drop: false }`
[INFO] [stderr]    Compiling ucd-trie v0.1.6
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking with_capacity_safe v0.4.2
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking metrohash v1.0.6
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]     Checking threadpool v1.8.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.57
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking docchi_compaction v0.8.0
[INFO] [stderr]     Checking docchi_archiver2 v0.8.0
[INFO] [stderr]    Compiling thiserror v1.0.57
[INFO] [stderr]    Compiling pest v2.7.8
[INFO] [stderr]    Compiling pest_meta v2.7.8
[INFO] [stderr]    Compiling pest_generator v2.7.8
[INFO] [stderr]    Compiling pest_derive v2.7.8
[INFO] [stderr]     Checking docchi_json5 v0.8.0
[INFO] [stderr]     Checking docchi_core v0.8.0
[INFO] [stderr]     Checking docchi_diff v0.8.0
[INFO] [stderr]     Checking docchi_fs v0.8.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `tempfile`
[INFO] [stdout]  --> src/test_fs/save_test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tempfile::tempdir;
[INFO] [stdout]   |     ^^^^^^^^ use of undeclared crate or module `tempfile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_simple_diff_files.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_cumulative_limit_nth.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_cumulative_limit_count.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_max_phase0.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_max_phase0_with_cumu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_load_and_save.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/simple_diff/sd_data.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::{thread_rng, Rng};
[INFO] [stdout]   |     ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/algo/phase_data.rs:64:29
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mut iter = vals[1..].into_iter();
[INFO] [stdout]    |                             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/algo/phase_data.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         for _ in 0..len {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/algo/calc_next_phase.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for i in 0..(len - 1){
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/file_name_props.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |         &self.order[0..len]
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/analyze_file_name.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         &s[(tag.len() + 2)..]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/analyze_file_name.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |         &s[(prev_ctl.len() + 2)..]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/analyze_file_name.rs:67:16
[INFO] [stdout]    |
[INFO] [stdout] 67 |         s = &s[read..];
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/analyze_file_name.rs:80:20
[INFO] [stdout]    |
[INFO] [stdout] 80 |             s = &s[read..];
[INFO] [stdout]    |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/file_name/analyze_file_name.rs:102:28
[INFO] [stdout]     |
[INFO] [stdout] 102 |             return Some(&s[1..i])
[INFO] [stdout]     |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/file_name/analyze_file_name.rs:117:28
[INFO] [stdout]     |
[INFO] [stdout] 117 |             return Some(&s[1..i+1])
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/file_hist/file_history.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for &order in &props.order()[0..(props.order().len()-1)]{
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/file_history_item.rs:85:44
[INFO] [stdout]    |
[INFO] [stdout] 85 |                     child.get_props(&order[1..])
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/ancestors.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |         order = order[0..next_phase+1].to_vec();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/ancestors.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |             Ok((&ancestors[0..next_phase], props))
[INFO] [stdout]    |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/file_hist/ancestors.rs:114:26
[INFO] [stdout]     |
[INFO] [stdout] 114 |             for inv_i in 0..order_last {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:52:45
[INFO] [stdout]    |
[INFO] [stdout] 52 |             remove_hash_dirs(&mut self.vec, 0..len,history_dir)?;
[INFO] [stdout]    |                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:63:49
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 remove_hash_dirs(&mut self.vec, 0..len - 1, history_dir)?;
[INFO] [stdout]    |                                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:83:48
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 remove_hash_dirs(&mut self.vec,0..index, history_dir.as_ref())?;
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/diff_and_cache/docchi_cache.rs:142:15
[INFO] [stdout]     |
[INFO] [stdout] 142 |     for i in (0..max_phase).rev(){
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/remove/history_remover.rs:75:31
[INFO] [stdout]    |
[INFO] [stdout] 75 |         for ind in &cue_order[1..]{
[INFO] [stdout]    |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/imp/common/path/hash.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let upper = hex_to_u64(&bytes[0..16])?;
[INFO] [stdout]   |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/common/path/hash.rs:10:35
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let lower = hex_to_u64(&bytes[16..32])?;
[INFO] [stdout]    |                                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/common/path/hash.rs:50:14
[INFO] [stdout]    |
[INFO] [stdout] 50 |     for _ in 0..16{
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/common/apply_items.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 46 |     for t_i in 0..paths_len {
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/test_fs/test_fifo_thread.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 |     for i in 0..100 {
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:22:35
[INFO] [stdout]    |
[INFO] [stdout] 22 |         let index = rng.gen_range(0..self.bytes.len());
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:23:33
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let val = rng.gen_range(0..255);
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:35:18
[INFO] [stdout]    |
[INFO] [stdout] 35 |         for n in 0..num{
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 |         for _ in 0..len{
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/test_simple_history/simple_diff/create_sd_diff.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 |     for i in 0..from.len(){
[INFO] [stdout]   |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:17:64
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let dir_name = format!("test_simple_diff_{}",rng.gen_range(0..100_000_000));
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:35:17
[INFO] [stdout]    |
[INFO] [stdout] 35 |     for _rep in 0..repeat{
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:36:31
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let n = rng.gen_range(1..=3);
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout] 38 |         for _ in 0..n {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_nth.rs:19:64
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let dir_name = format!("test_simple_diff_{}",rng.gen_range(0..100_000_000));
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_nth.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |     for _rep in 0..repeat{
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/history2/file_history2.rs:46:38
[INFO] [stdout]    |
[INFO] [stdout] 46 |         for &order in &props.order()[0..(props.order().len()-1)]{
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_count.rs:18:64
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let dir_name = format!("test_simple_diff_{}",rng.gen_range(0..100_000_000));
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_count.rs:34:17
[INFO] [stdout]    |
[INFO] [stdout] 34 |     for _rep in 0..repeat{
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:16:64
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let dir_name = format!("test_simple_diff_{}",rng.gen_range(0..100_000_000));
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:30:17
[INFO] [stdout]    |
[INFO] [stdout] 30 |     for _rep in 0..repeat {
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:31:31
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let n = rng.gen_range(1..=3);
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |         for _ in 0..n {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:17:64
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let dir_name = format!("test_simple_diff_{}",rng.gen_range(0..100_000_000));
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |     for _rep in 0..repeat{
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:34:31
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let n = rng.gen_range(1..=3);
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 |         for _ in 0..n {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:18:66
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let dir_name = format!("test_load_and_save_{}",rng.gen_range(0..100_000_000));
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |     for _rep in 0..5{
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:34:31
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let n = rng.gen_range(1..=3);
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 36 |         for _ in 0..n {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:54:14
[INFO] [stdout]    |
[INFO] [stdout] 54 |     for _ in 0..30{
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:55:31
[INFO] [stdout]    |
[INFO] [stdout] 55 |         let n = rng.gen_range(1..=3);
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:57:18
[INFO] [stdout]    |
[INFO] [stdout] 57 |         for _ in 0..n {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/algo/phase_data.rs:64:29
[INFO] [stdout]    |
[INFO] [stdout] 64 |         let mut iter = vals[1..].into_iter();
[INFO] [stdout]    |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/algo/phase_data.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         for _ in 0..len {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/algo/calc_next_phase.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 |     for i in 0..(len - 1){
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/file_name_props.rs:50:21
[INFO] [stdout]    |
[INFO] [stdout] 50 |         &self.order[0..len]
[INFO] [stdout]    |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/analyze_file_name.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 |         &s[(tag.len() + 2)..]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/analyze_file_name.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 |         &s[(prev_ctl.len() + 2)..]
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/analyze_file_name.rs:67:16
[INFO] [stdout]    |
[INFO] [stdout] 67 |         s = &s[read..];
[INFO] [stdout]    |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_name/analyze_file_name.rs:80:20
[INFO] [stdout]    |
[INFO] [stdout] 80 |             s = &s[read..];
[INFO] [stdout]    |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/file_name/analyze_file_name.rs:102:28
[INFO] [stdout]     |
[INFO] [stdout] 102 |             return Some(&s[1..i])
[INFO] [stdout]     |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/file_name/analyze_file_name.rs:117:28
[INFO] [stdout]     |
[INFO] [stdout] 117 |             return Some(&s[1..i+1])
[INFO] [stdout]     |                            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/file_hist/file_history.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for &order in &props.order()[0..(props.order().len()-1)]{
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/file_history_item.rs:85:44
[INFO] [stdout]    |
[INFO] [stdout] 85 |                     child.get_props(&order[1..])
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/ancestors.rs:76:23
[INFO] [stdout]    |
[INFO] [stdout] 76 |         order = order[0..next_phase+1].to_vec();
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/ancestors.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |             Ok((&ancestors[0..next_phase], props))
[INFO] [stdout]    |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/file_hist/ancestors.rs:114:26
[INFO] [stdout]     |
[INFO] [stdout] 114 |             for inv_i in 0..order_last {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:52:45
[INFO] [stdout]    |
[INFO] [stdout] 52 |             remove_hash_dirs(&mut self.vec, 0..len,history_dir)?;
[INFO] [stdout]    |                                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:63:49
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 remove_hash_dirs(&mut self.vec, 0..len - 1, history_dir)?;
[INFO] [stdout]    |                                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:83:48
[INFO] [stdout]    |
[INFO] [stdout] 83 |                 remove_hash_dirs(&mut self.vec,0..index, history_dir.as_ref())?;
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/imp/history/diff_and_cache/docchi_cache.rs:142:15
[INFO] [stdout]     |
[INFO] [stdout] 142 |     for i in (0..max_phase).rev(){
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/imp/history/remove/history_remover.rs:75:31
[INFO] [stdout]    |
[INFO] [stdout] 75 |         for ind in &cue_order[1..]{
[INFO] [stdout]    |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/imp/common/path/hash.rs:9:35
[INFO] [stdout]   |
[INFO] [stdout] 9 |     let upper = hex_to_u64(&bytes[0..16])?;
[INFO] [stdout]   |                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/common/path/hash.rs:10:35
[INFO] [stdout]    |
[INFO] [stdout] 10 |     let lower = hex_to_u64(&bytes[16..32])?;
[INFO] [stdout]    |                                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/common/path/hash.rs:50:14
[INFO] [stdout]    |
[INFO] [stdout] 50 |     for _ in 0..16{
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/imp/common/apply_items.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 46 |     for t_i in 0..paths_len {
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:39:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 39 |         let b = get_bool(p, "b")?;
[INFO] [stdout]    |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 59 |         let i = get_int(p, "int")?;
[INFO] [stdout]    |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:70:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 70 |         let b = get_bool(p, "b")?;
[INFO] [stdout]    |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 73 |         let i = get_int(p, "int")?;
[INFO] [stdout]    |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:76:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 76 |         let a = get_int(p, "added")?;
[INFO] [stdout]    |                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:31:38
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn mutate(&mut self, num : u8) -> FsResult<()>{
[INFO] [stdout]    |     --------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 31 |             if *self.bytes.get(index)? == 0{ break; }
[INFO] [stdout]    |                                      ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:36:52
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn mutate(&mut self, num : u8) -> FsResult<()>{
[INFO] [stdout]    |     --------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 36 |             *self.bytes.get_mut(index + n as usize)? = num;
[INFO] [stdout]    |                                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `FsError`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:69:78
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Err(anyhow!("error index {} is out of bound len {}", index, len))?
[INFO] [stdout]    |                                                                              ^ the trait `From<anyhow::Error>` is not implemented for `FsError`, which is required by `Result<(), FsError>: FromResidual<Result<Infallible, anyhow::Error>>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              <FsError as From<CoreError>>
[INFO] [stdout]              <FsError as From<NouArcError>>
[INFO] [stdout]              <FsError as From<ComError>>
[INFO] [stdout]              <FsError as From<DiffError>>
[INFO] [stdout]              <FsError as From<std::io::Error>>
[INFO] [stdout]              <FsError as From<TryReserveError>>
[INFO] [stdout]              <FsError as From<std::string::String>>
[INFO] [stdout]              <FsError as From<SystemTimeError>>
[INFO] [stdout]              <FsError as From<&str>>
[INFO] [stdout]    = note: required for `Result<(), FsError>` to implement `FromResidual<Result<Infallible, anyhow::Error>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn decode_kvals(kvals : &[KVal]) -> FsResult<SdDiff>{
[INFO] [stdout]    |     --------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 45 |         let mut iter = kvals.iter();
[INFO] [stdout] 46 |         let len = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiff, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiff, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:46:40
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn decode_kvals(kvals : &[KVal]) -> FsResult<SdDiff>{
[INFO] [stdout]    |     --------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 45 |         let mut iter = kvals.iter();
[INFO] [stdout] 46 |         let len = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiff, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiff, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:76:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiffItem, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:76:42
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiffItem, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:77:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout] 77 |         let value = iter.next()?.as_i64()? as u8;
[INFO] [stdout]    |                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiffItem, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:77:42
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout] 77 |         let value = iter.next()?.as_i64()? as u8;
[INFO] [stdout]    |                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<SdDiffItem, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/show_dir_contents_history.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub(crate) fn show_dir_contents_history<P : AsRef<Path>>(path : P) -> FsResult<Vec<(String, usize)>>{
[INFO] [stdout]    | ---------------------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 13 |         let name = entry.path().file_name()?.to_string_lossy().to_string();
[INFO] [stdout]    |                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<(std::string::String, usize)>, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<Vec<(std::string::String, usize)>, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:45:58
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn test_simple_diff_files() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 45 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_nth.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/history2/create_file_history2.rs:13:48
[INFO] [stdout]    |
[INFO] [stdout] 8  | pub(crate) fn create_file_history2(dir_path : &Path, hint_max_phase : Option<usize>) -> FsResult<FileHistory2>{
[INFO] [stdout]    | -------------------------------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 13 |         let filename = entry.path().file_name()?.to_string_lossy().to_string();
[INFO] [stdout]    |                                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<FileHistory2, FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<FileHistory2, FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_count.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:42:57
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn test_max_phase0() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let newest_path = history.newest_file_path(&dir)?;
[INFO] [stdout]    |                                                         ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:42:58
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn test_max_phase0_with_cumu() -> FsResult<()> {
[INFO] [stdout]    | ---------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache,&op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `rand`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of undeclared crate or module `rand`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:42:58
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn test_load_and_save() -> FsResult<()> {
[INFO] [stdout]    | --------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:63:58
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn test_load_and_save() -> FsResult<()> {
[INFO] [stdout]    | --------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 63 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `FromResidual<Option<Infallible>>` is not implemented for `Result<(), FsError>`
[INFO] [stdout]    = help: the following other types implement trait `FromResidual<R>`:
[INFO] [stdout]              <Result<T, F> as FromResidual<Yeet<E>>>
[INFO] [stdout]              <Result<T, F> as FromResidual<Result<Infallible, E>>>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `ast_bool`, `ast_f64`, and `ast_string` are never used
[INFO] [stdout]   --> src/error.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) trait OptToErr{
[INFO] [stdout]    |                  -------- methods in this trait
[INFO] [stdout] 13 |     fn ast_i64(&self) -> Result<i64, &'static str>;
[INFO] [stdout] 14 |     fn ast_bool(&self) -> Result<bool, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 15 |     fn ast_f64(&self) -> Result<f64, &'static str>;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 16 |     fn ast_string(&self) -> Result<String, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply_diff` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_src.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffSrc<V : DiffValue> : Clone{
[INFO] [stdout]   |                  ------- method in this trait
[INFO] [stdout] 5 |     fn create_diff(&self, from: &Self) -> FsResult<V>;
[INFO] [stdout] 6 |     fn apply_diff(&mut self, diff : V) -> FsResult<()>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `read_value` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_value.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffValue : Sized{
[INFO] [stdout]   |                  --------- associated function in this trait
[INFO] [stdout] 5 |     fn read_value<R : Read>(read : &mut R) -> FsResult<Self>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 27 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 35 previous errors; 54 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `docchi_fs` (lib test) due to 36 previous errors; 54 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "cffd55826f593abe7feab8fc58fd55cdb2fbd0cef206faf4448dd94b96987b21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cffd55826f593abe7feab8fc58fd55cdb2fbd0cef206faf4448dd94b96987b21", kill_on_drop: false }`
[INFO] [stdout] cffd55826f593abe7feab8fc58fd55cdb2fbd0cef206faf4448dd94b96987b21
